import cv2
import numpy as np

img = cv2.imread("img/hough.png")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)

# image	8 位、单通道二进制源图像。该函数可以修改图像.
# rho	累加器的距离分辨率（以像素为单位）。
# theta	累加器的角度分辨率（以弧度为单位）.
# threshold	累加器阈值参数。只有那些获得足够票数的行才会返回 ( > threshold).
# minLineLength	最小行长度。短于该时间的线段将被拒绝。
# maxLineGap	连接同一线上的点之间允许的最大间隙。

lines = cv2.HoughLinesP(binary, 1, np.pi / 180, 180)

for line in lines:
    x1, y1, x2, y2 = line[0]
    cv2.line(img, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=2)

cv2.imshow("img", img)
cv2.waitKey(0)
